Users can communicate with each other over a communications network by transmitting and receiving signals over the network. Advances in communications technology have resulted in a rapid increase in the number of users communicating over such networks and also in the volume of data being transferred between users in a communication. Networks now support the transmission of video signals between users. Video signals may comprise a sequence of frames which are displayed sequentially when the video signal is played out. As is known in the art video signals can be encoded according to a number of different protocols for transmission over a network.
When a device receives frames of a video signal over a communications network a certain amount of dejittering is needed before the frames are played out. For example, this may be due to the timing of the frames arriving at the receiving device being disrupted by problems in the network. The receiving device may store the received video frames in a jitter buffer in order to smooth out some of the jitter in the received frames. However, even when a jitter buffer is used at the receiving device jitter may occur in the video frames, for example when the jitter buffer becomes completely full or completely empty. In order to handle the remaining jitter an algorithm can be implemented at the receiving device to calculate how the output rate of the video frames from the jitter buffer should be varied to reduce the jitter of the video frames. The algorithm aims to reduce the number of times that the jitter buffer will become completely empty or completely full by varying the output rate of frames from the jitter buffer.